// 随机特效：多参数随机的雪花飘落
(function() {
    // 1. 动态添加必要样式（无需外部CSS）
    const style = document.createElement('style');
    style.textContent = `
        .random-effect {
            position: absolute;
            top: -20px;
            user-select: none;
            pointer-events: none; /* 不影响页面点击 */
            animation: fall linear infinite;
        }
        @keyframes fall {
            to {
                transform: translateY(100vh) rotate(calc(360deg * var(--rotate-mult)));
                opacity: 0;
            }
        }
    `;
    document.head.appendChild(style);

    // 2. 随机配置参数
    const config = {
        count: 12, // 特效数量
        symbols: ['❄️', '✨', '❅'], // 随机显示的符号
        minSize: 12, // 最小尺寸(px)
        maxSize: 24, // 最大尺寸(px)
        minSpeed: 5, // 最慢下落时间(s)
        maxSpeed: 16, // 最快下落时间(s)
        colors: ['#fff', '#e6f7ff', '#f0f8ff'] // 随机颜色
    };

    // 3. 创建单个随机特效元素
    function createRandomEffect() {
        const elem = document.createElement('div');
        elem.className = 'random-effect';

        // 随机符号
        elem.textContent = config.symbols[Math.floor(Math.random() * config.symbols.length)];
        // 随机位置（水平）
        elem.style.left = `${Math.random() * 100}vw`;
        // 随机尺寸
        elem.style.fontSize = `${config.minSize + Math.random() * (config.maxSize - config.minSize)}px`;
        // 随机颜色
        elem.style.color = config.colors[Math.floor(Math.random() * config.colors.length)];
        // 随机下落速度
        const fallTime = config.minSpeed + Math.random() * (config.maxSpeed - config.minSpeed);
        elem.style.animationDuration = `${fallTime}s`;
        // 随机旋转倍数（避免统一旋转）
        elem.style.setProperty('--rotate-mult', Math.random() * 2);
        // 随机透明度
        elem.style.opacity = 0.6 + Math.random() * 0.4;

        document.body.appendChild(elem);
        // 元素落地后删除，避免堆积
        setTimeout(() => elem.remove(), fallTime * 1000);
    }

    // 4. 批量生成+定时补充
    function generateEffects() {
        for (let i = 0; i < config.count; i++) createRandomEffect();
    }
    // 初始化
    generateEffects();
    // 每2秒补充一批，保持持续效果
    setInterval(generateEffects, 2000);
})();
